
--clase para manejar los sprites que tiene cada jugador, y respecto a que tecla se tienen que dibujar
--to do thinks
--
love.filesystem.load("animation.lua")()
love.filesystem.load("insertAction.lua")()
local Player_mt = {}
Player_mt.__index = Player_mt

-- @function PlyNew()
-- imgpath -> la localicacion del sprite
-- 
function PlyNew(imgPath, pixX, pixY, initX, initY)
    local plr = {}
    plr.isPlay = false
    plr.img = love.graphics.newImage( imgPath )
    plr.frames = {}
    plr.ImagePixelX = pixX
    plr.ImagePixelY = pixY
    plr.key = {}
    plr.rkey = {}
    plr.lastkey = "down"
    plr.x = initX
    plr.y = initY
    return setmetatable(plr, Player_mt)
end

function Player_mt:setkeys( keyAction, keypress )

    self.rkey[keypress] = keyAction

end

-- keyaction, la accion a realizar,  STRING
-- keypress, la tecla con la cual realizar la accion
-- framae comienzo, el numero de frame a comenzar -1
-- frame final , el ultimo frame a cojer para la accion

function Player_mt:insertAction(keyAction, keyPress,  frame_comienzo, frame_final, velocidad, tiempo, type)
   -- if self.frames[keyAction] == nil then
    --    table.insert(self.frames, keyAction, animationNew( self.img, self.ImagePixelX, self.ImagePixelY, frame_comienzo, frame_final, velocidad, tiempo))
    --else
        self.frames[keyPress] = animationNew( self.img, self.ImagePixelX, self.ImagePixelY, frame_comienzo, frame_final, velocidad, tiempo)
        self.rkey[keyPress] = keyAction
    --end
    --if type == "move" then 
    --end
end

function Player_mt:draw()
    self.frames[self.lastkey]:draw( self.x , self.y, 0, 2, 2)
end

function Player_mt:update(dt)
    self.frames[self.lastkey]:update(dt)

--        if self.lastkey == "up" then
--        self.y = self.y - 2 * dt
--    end
--    if self.lastkey == "down" then
--        self.y = self.y + 2 * dt
--    end
--    if self.lastkey == "right" then
--        self.x = self.x + 20 * dt
--    end
--    if self.lastkey == "left" then
--        self.x = self.x - 20 * dt
--    end
    
end

function Player_mt:lastKey(key)
   if self.rkey[key] ~= nil  then
      self.lastkey =  key
   end
end

function Player_mt:setXY(x, y)
    self.x = x
    self.y = y
end

-- Hacer Funcion para que caiga con gravedad
--hacer fncion quear que se añadan acciones de ataque o movimiento

